home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / util / dassy.arc / S DASSY.DOX < prev   
Text File  |  1989-07-09  |  4KB  |  43 lines

  1.  
  2. ╙MART ─ISASSEMBLER
  3.  
  4. ╠OUIS ╟IGLIO
  5.  
  6.    ╔F YOU'VE EVER DISASSEMBLED A MACHINE LANGUAGE PROGRAM, YOU'VE PROBABLY SEEN SUCH STATEMENTS AS ╩╙╥ $├738.  ╫OULDN'T IT BE BETTER TO SEE ╩╙╥ ─╔╙╨╠┴┘ INSTEAD?
  7.  
  8.    "╙MART ─ISASSEMBLER" IS A ╥┴═-BASED DISASSEMBLER THAT REPLACES ALL THE ADDRESSES IN ╩═╨ AND ╩╙╥ COMMANDS WITH MEANINGFUL LABLES WHENEVER POSSIBLE.  ╘HE PROGRAM CAN SEND DISASSEMBLY TO THE SCREEN OR PRINTER, AND IT CAN ALSO DISASSEMBLE MACHINE LANGUAGE PROGRAMS LOCATED UNDER THE ┬┴╙╔├ OR ╦ERNAL ╥╧═.
  9.  
  10. ╟ETTING ╙TARTED
  11.  
  12.    "╙MART ─ISASSEMBLER" IS WRITTEN ENTIRELY IN ┬┴╙╔├.  ╒SING "╘HE ┴UTOMATIC ╨ROOFREADER" FROM ├OMPUTE'S ╟AZETTE, CAREFULLY TYPE IN ╙MART ─ISASSEMBLER AND SAVE IT TO TAPE OR DISK BEFORE ATTEMPTING TO RUN IT.
  13.  
  14.    ╘O USE ╙MART DISASSEMBLER FIRST LOAD THE MACHINE LANGUAGE (═╠) PROGRAM YOU'D LIKE TO DISASSEMBLE; THEN LOAD AND RUN SMART DISASSEMBLER.  ┼NTER THE ═╠ PROGRAMS STARTING ADDRESS IN DECIMAL.  ╬EXT ENTER AN ADDRESS WHERE YOU WOULD LIKE THE DISASSEMBLY TO STOP.  ╔F YOU DON'T WANT SMART DISASSEMBLER TO STOP AUTOMATICALLY, JUST PRESS RETURN.
  15.  
  16.    ╬EXT THE MAIN MENU APPEARS.  ╒SE THE FUNCTION KEYS TO MAKE A SELECTION.  ╨RESS ╞1 TO BEGIN DISASSEMBLY OR ╞8 TO EXIT ╙MART ─ISASSEMBLER.  ╨RESS ╞3 TO TOGGLE THE USE OF SUBROUTINE LABLES ON AND OFF, ╞5 TO SWITCH BETWEEN DECIMAL AND HEXIDECIMAL OUTPUT, AND ╟╞7 TO ENABLE OR DISABLE OUTPUT TO THE PRINTER.  ╘HE ╞6 KEY TOGGLES THE ABILITY TO DISASSEMBLE ╥┴═ UNDER ╥╧═.  ╙ET THIS OPTION TO YES IF THE PROGRAM YOU WANT TO DISASSEMBLE RESIDES IN ╥┴═ UNDER THE ┬┴╙╔├ OR ╦ERNAL ╥╧═.  ╔F YOU SET THIS OPTION TO ╬╧, YOU CAN DISASSEMBLE YOUR 64'S OPERATING SYSTEM AND EVEN BASIC ITSELF.
  17.  
  18.    ╘HE DISASSEMBLY MAY BE PAUSED BY PRESSING ANY KEY.  ╘O RESUME THE DISASSEMBLY, PRESS THE SPACE BAR.  ╨RESSING ╞1 INSTEAD DISPLAYS THE MAIN MENU, ALLOWING YOU TO CHANGE ANY OF THE INITIAL SETTINGS.  ╨RESS ╞1 TO RESUME THE DISASSEMBLY.
  19.  
  20.  
  21. ═┼═╧╥┘ ├╧╬╞╠╔├╘╙
  22.  
  23.    ╔T'S POSSIBLE THAT THE CODE YOU WANT TO DISASSEMBLE RESIDES IN ┬┴╙╔├'S MEMORY (2048-40959) OR IN MEMORY LOCATIONS 820-840.  ╔F THIS IS THE CASE, ╙MART ─ISASSEMBLER WILL OVERWRITE AND DESTROY THE ═╠ PROGRAM.  ╘HERE ARE SEVERAL WAYS TO PREVENT THIS FROM HAPPENING.
  24.  
  25.    ╔F THE PROGRAM RESIDES IN ┬┴╙╔├'S MEMORY YOU CAN LOWER THE TOP OF ┬┴╙╔├ BY TYPING
  26.  
  27. ╚=╔╬╘(┴─/256):╨╧╦┼56,╚:╨╧╦┼55,(┴─-256*╚):├╠╥
  28.  
  29. WHERE ┴─ IS THE ADDRESS OF THE NEW TOP OF ┬┴╙╔├ (MAKE SURE ┴─ IS LESS THAN THE STARTING ADDRESS OF THE ═╠ PROGRAM.)  ┼NTER THIS COMMAND IN DIRECT MODE BEFORE YOU LOAD AND RUN ╙MART ─ISASSEMBLER.
  30.  
  31. ╙MART ─ISASSEMBLER STORES A SMALL ═╠ SUBROUTINE AT 820-840.  ╔F YOUR ═╠ PROGRAM RESIDES IN THIS AREA, ╙MART ─ISASSEMBLER'S SUBROUTINE MUST BE RELOCATED.  ├HANGE THE VALUE OF THE VARIABLE ═╠ IN LINE 30 TO ANY LOCATION WITH AT LEAST 20 BYTES OF UNUSED ╥┴═.
  32.  
  33. ├USTOMIZING THE PROGRAM
  34.  
  35. ┘OU MAY INCLUDE YOUR OWN ADDRESS LABELS BY ADDING ─┴╘┴ STATEMENTS TO ╙MART ─ISASSEMBLER AND CHANGING THE VALUE OF THE VARIABLE ╬╠ IN LINE 20.  ╬OTE THAT THE 39 ╦ERNAL ╥╧═ ROUTINE LABLES HAVE ALREADY BEEN ENTERED, SO THERE IS NO NEED TO ADD THEM.
  36.  
  37. ╞OR EXAMPLE, IF YOU KNOW A SUBROUTINE AT LOCATION 50000 IS A STRING INPUT ROUTINE, YOU MIGHT WANT TO LABEL IT AS ╔╬╙╘╥╔╬╟.  ┼NTER A LABEL AND ADDRESS (IN DECIMAL) AS A DATA STATEMENT AT THE END OF ╙MART ─ISASSEMBLER.  ╞OR THIS EXAMPLE, YOU TYPE
  38.    2000 ─┴╘┴ ╔╬╙╘╥╔╬╟,5000
  39. ┴DD THE NUMBER OF ADDITIONAL ADDRESS LABELS TO THE VARIABLE ╬╠.  ╔N THIS CASE, ONE ADDRESS LABEL HAS BEEN ADDED, SO LINE 20 SHOULD BE REENTERED AS
  40.    20 ╬╠=40
  41. [╬╠ WAS 39 BEFORE ╔╬╙╘╥╔╬╟ WAS ADDED.)  ╘HEREAFTER, ALL ╩╙╥ 50000 OR ╩═╨ 50000 STATEMENTS WILL BE REPLACED BY ╩╙╥ ╔╬╙╘╥╔╬╟ AND ╩═╨ ╔╬╙╘╥╔╬╟, RESPECTIVELY.
  42.  
  43.